The Internet Protocol (“IP”) is designed as a connectionless protocol. Therefore, IP workload balancing solutions may treat every Transmission Control Protocol (“TCP”) connection request to a particular application, identified by a particular destination IP address and port number combination, as independent of all other such TCP connection requests. Examples of such IP workload balancing systems include Sysplex Distributor from the International Business Machines Corporation (“IBM”), which is included in IBM's z/OS and OS/390 TCP/IP implementations, and the Multi-Node Load Balancer (“MNLB”) from Cisco Systems, Inc. Thus, the Sysplex Distributor is the strategic load balancing solution for z/OS. In other words, the Sysplex Distributor may distribute new client connection requests sent to a single IP address to one or more different application servers on different TCP/IP stacks.
Sysplex Distributor consists of two functions, a routing stack and one or more target stacks. The routing stack may be configured to process new connection requests and select a target stack to handle the new request. The routing stack typically keeps track of the selected target stack for each connection request and routes subsequent packets for the same TCP connection to the same target stack. Sysplex Distributor may also maintain a connection routing table for active connections. A connection entry may be created when a connection is established and the connection entry may be removed when the connection is terminated.
Traffic sent from the application server on the target stack to the client typically uses the most efficient route available and may bypass the routing stack completely. By default, traffic sent from the client to the application server must typically traverse the routing stack. The routing stack in turn forwards the data over internal coupling facility (XCF) links to the appropriate target stack.
Sysplex Distributor may also work in conjunction with Cisco Forwarding Agents. When used in this mode, the Cisco Forwarding Agents may intercept new connection requests and forward them to the routing stack. The routing stack may select the optimal target stack to process the new connection request and return the IP address of the target stack to the Cisco Forwarding Agent. The Cisco Forwarding Agent may then forward the connection request and subsequent packets for this connection to the selected target stack, typically using Generic Routing Encapsulation (GRE) tunneling, although MultiProtocol Label Switching (MPLS) may also be used.
Use of Cisco Forwarding Agents and XCF links may not be desirable. For example, sending the connection requests and data packets over XCF links may add delay. Furthermore, the communication between the Cisco Forwarding Agents and the routing stacks may also add delay and reduce the scalability of the system. Accordingly, improved methods of load balancing may be desired.